home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Eagles Nest BBS 8
/
Eagles_Nest_Mac_Collection_Disc_8.TOAST
/
Developer Tools⁄Additions
/
Dali15#2
/
DalÌ 2.image
/
Documentation
/
Alpha Change History
next >
Wrap
Text File
|
1992-08-20
|
29KB
|
632 lines
This README file details the changes to QuickTime™ since 1.0.
Changes are detailed in the following manner. There is a brief statement of the change.
This is followed by the routines that were changed, added, or removed. Then there is a
discussion of what the change means to your application.
P H O T O C D S U P P O R T
This is totally cool. Get a Photo-CD™ and try it out.
Changes for D19:
Make it work under system 6 and better under low memory.
Changes for Alpha:
Eliminate resource file modifications at mount time
Preference file now opens correctly in Slide Show Viewer
Fixed bug which would cause discs with a certain number of photos ( if last image file directory
entry is at a 2048 byte boundary ) to hang at mount time
Was reading info file incorrectly, high res images now return the correct size
Make sure FSCalls and Alias Mgr are around before calling them ( if system 6.0.7 and no QuickTime )
Check system justification and do the "right" thing in the pop-up menus
Added frame around pict in info window in slide show as per HIG request
Fixed pop-up menus to hilite the label properly
Fixed bug which would not allow 3076x2048 resolution images to open at all
Fixed incorrect caching of error data in 1536x1024 resolution images
Dont allow seeked spooling with QuickTime 1.0 because it doesn't work ( high res images with less than 800Kb free )
Set customicon bit in build so you can see the icon
Use shared refcon from system wide codecs if available when codec gets loaded in application heap.
Added error message when opening slide show docs that have been improperly copied to hard disc
Changed creator of preference files and added msg STRs so that finder displays those when
they are double clicked in system 7
Changed icon style to reflect HIG desires
Consolidated duplicate string resources
Fixed version resource in slide shop viewer app ( now same as version of extension )
Cleaned up miscellaneous fields in codec info structure
Added support for 16 bit (dithered) decode in codec
Added direct scaling support to codec for 2x and 4x sizes
Added linear interpolation in codec for scaled cases for nicer display
Made globals purgeable when there are no photo cd discs mounted to conserve memory
Added support for desktop icon calls in FST to return icons for application and slideshow doc
Loaded icons into globals so FST can get to them
Fixed Eject/Remount hang problem
Made previews read from disc only if the preview PICT resource is accessed to speed up finder displays
Dont allow PCD discs older than level 6 to be mounted
Dont mount volumes at boot time when resolving aliases to the default PICT application
If application cant launch the desired app, look for another running app that can open PICTs and
give the user the option of using that
Application allows you to add files that dont accept AppleEvents, with a warning
Application send first opendoc msg with launch so even non AppleEvent-saavy apps can open the first document
FST looks for application prefs file and sets default creator for PICTs based on prefered viewing
application
Fixed more memory bugs in application and FST
Added string resources to pict files to have application name for finder when app isn't present
Added Std Preview previews to created PICT files on CD
Unload application and globals unless photo CD disc is mounted
Sped up globals access
Broke up code so that init and patches and gestalt are in the FST code and codec is separate
Changed directory finder layout on disc
Made additional folders on discs visible
Broke out application resources into INIT for international localization - added 'appr' resource which points
to these resources to identify them.
Changed Human Interface of viewer application and Photo CD folder layout to meet HIG guidelines.
Fixed double dispose handle when mounting photo CDs.
Fixed bug which caused last part of Photo CD type PICTs to be trashed. They now include the new
and improved default PICT to be displayed when QT or PCD Codec not installed.
M O V I E T O O L B O X
Changes for D19:
Added GetTrackEditRate call to provide rate of a track's edit at a given time.
Fix Clock Component interfaces which had no selectors.
Add StartStopChanged to Clock interrace.
Fixed bad enum in Components.h.
Make mediaEdits work much better in Get≈NextInterestingTime.
GetMovieNextInterestingTime now posts a "trackNotInMovie" error if no tracks exist
to match the media handler type.
Make progress procs work for all LoadIntoRam calls.
Dispose callbacks in DisposeMovie
Don't truncate media durations when copying tracks, rather copy full media duration and
truncate its playback duration using the edit list.
Fix loading problems with matrix calculations which made disabled have nil media matrices forever.
Make compositing better.
Don’t allocate a composite buffer if the movie isn’t being played to the screen.
Allocate composite color table to match display gworld.
Avoid creating new GDevice for composite buffer.
Dispose composite buffer on when disabled.
Only copy parts of composite buffer to display that actually change.
Service non-spatial tracks when compositing, even if nothing to draw.
Correctly determine composite buffer depth when playing to a GWorld rather than the screen.
Don't bump movie changed flag if no change when calling:
SetTrackLayer, SetTrackMatrix, SetMovieMatrix, SetMediaQuality,
SetMediaLanguage, SetTrackVolume, SetMoviePosterTime, SetMoviePreferredVolume,
SetMoviePreferredRate
or when alternates change automatically
Fix layering bug that caused tracks to be deactivated if there were disabled tracks in the movie.
Return error from NewMovieFromScrap when no movie on scrap.
Passing -1 to NewMovieFromFile for resID checks data fork only.
Don't enable new media created on disabled movie.
Make active segment respect preview mode, i.e. you can't set active segment outside of preview segment.
Fix problems with self reference bit after saves.
Make inactive tracks have empty display bounds.
When doing movie editing, don't throw away track layer numbers. Transfered on copy. Always paste in front
of existing tracks.
Made some speed improvements to editing, more to come.
Cut/CopyMovie calls now maintain track id, layer number, and creation time in the destination.
GetMoviePict and GetMoviePosterPict now respect track layers.
Editing no longer backs up to key frames if the key frame it would back up to is the last key frame.
When flatten a frame differenced movie with every other frame removed, the size used to grow a lot.
Make ScaleMovie/TrackSegment more accurate.
Fix ScaleMovie/TrackSegment to work when outTime > trackDuration.
Set Movies error coming out of several userdata calls.
Fix activate/deactivate bugs. File should now be closed when movie is deactivated.
One deactivate should be enough!
Fixed bug in GetMediaDataHandlerDescription where if you asked for the creatorName,
we would end up trashing the stack.
Make loading of movies without edit lists work.
Unlock some toolbox global handles to improve memory situation.
Make progress procs work on Movie/Track/MediaLoadIntoRam calls
Changes for Alpha:
Loading and saving movies is much improved in low memory situations.
Added IsScrapMovie, PutMovieIntoTypedHandle, PasteHandleIntoMovie, ConvertFileToMovieFile, and ConvertMovieToFile
to allow easier basic access to the Movie import/export capabilities.
Fixed some strange bugs with layering when pasting new tracks into a movie.
Fix bug when compositing tracks offscreen, but movie has no spatial bounds.
Fix crash when bringing up lost file dialog if the current GDevice was not set to MainDevice.
Take advantage of the cool new NewImageGWorld call where possible (loading matte atoms).
Added a case to the load media code and editing code so that if a track is managed by a client of the generic
media handler, but that media handler is not present, it will be loaded/saved/edited correctly, even
though it cannot be played.
On the first write to an empty file, the movie toolbox reserves and 8 byte header to allow for more
platform independent movie files.
Don't crash when a nil movie is passed to SetMovieMatrix.
Return noMovieFound, not eofErr, when failing to retrieve a movie from the data fork.
LoadMediaIntoRam was passing the LoadTrackIntoRam progress opCode to the applications progress proc.
Optimize simple case in flatten: single track interleave flatten becomes a non-interleaved flatten.
Speed up FlattenMovie/FlattenMovieData by loading bigger chunks into RAM before writing.
Fix low-memory leak in NewMovieEditState.
Attempt to buffer writes to a file. This results in much faster FlattenMovie performance, and better
performance for applications which create movie data.
Fix bug which messed up MACE in the editing code (was using a time instead of a sample number in one place).
Fix bug with AddMediaSample where it incorrectly added multiple samples of the same size if they were all
added in a single call.
Change GetMediaSample to put discontiguous chunks of samples together when possible (sound…).
The following new flags were added to playback hints
hintsUseScreenBuffer - reduces tearing by always buffering offscreen
hintsAllowInterlace - enables codecs to use interlace update
hintsUseSoundLerp - enables interpolation of sound, improves quality of sound <22K
Single Fork Movies:
Changes for D19:
Set self reference bit correctly in single fork movies.
Don't require 'mdat' to be the first atom in a single fork movie. Just skip over
anything until we run into something we recognize.
Movie Import and Movie Export:
Changes for Alpha:
Updated all import and export components to support progress procedure and canceling.
Add a PICS Import component.
Now uses Movie Toolbox progress proc instead of ICM Progress proc.
Change the interface to the "user interface" calls to give components more information.
Startup Movie:
Changes for Alpha:
Bring up the startup movie on the best screen, not on the main screen.
Allow the startup movie to be an alias to a movie on system 7.
Media Handlers:
Changes for D19:
Shadow syncs support was added.
The following two routines were added:
pascal OSErr SetMediaShadowSync( Media m,
long frameDiffSampleNum, long syncSampleNum );
pascal OSErr GetMediaShadowSync( Media m,
long frameDiffSampleNum, long *syncSampleNum );
To add a shadow sync, register the self contained sample number as a shadow
sync for the frame differenced sample number.
Generic Media Handler
Changes for D19:
A Generic Media Handler was added to allow for the creation of simple media handlers. See documentation
for details on how to use it.
Changes for Alpha:
Added a capabilities flag for media handlers which can't deal with a black and white grafport.
Made the get/put code work again.
Fix enable call to pass through to the std media handler. Otherwise data handler got confused.
Fix several crashing bugs that appeared when the media handler didn't have spatial properties.
Add a preroll call for Generic Media Handler clients.
Added a component flag (low bit) for Generic Media Handler clients to set. This allows the movie toolbox
to cover for a missing media handler.
TextMedia
Changes for D19:
Added Text Media handler based off the Generic Media Handler, see documentation for details.
Video Media Handler
Changes for D19:
Fix play back when the track dimensions are different from the image description dimensions.
Fixed bug when we generated a pict for a frame differenced movie. We used to attempt to create
a GWorld with bad depths (24-bit and gray scales).
Changes for Alpha:
Use NewImageGWorld when necessary in GetPict code.
Pass correct dataSize to decompress when there are multiple samples in a single chunk.
Try to be smarter about async decompress to allow more time for other things.
Better error returned if a codec for the track cannot be found.
Sound Media Handler
Changes for D19:
Don't periodically play noise when playing MACE backwards
Changes for Alpha:
Allow samples cached for playback to be returned by GetMediaSample rather than hitting the disk.
Keep track of whether cached samples were crushed or not.
Fix a rounding problem in MediaTimeToSampleNum which messed up editing MACE sound tracks.
Data Handler
Changes for D19:
Changed for new Async Data handler
Now resolves alias for determining which read caches to close when an open for write is done.
Improved load into ram speed.
Added wait for outstanding async read to come in before we go after the data requested.
Fixed to no longer step on the error code after the Task call.
Changes for Alpha:
Avoid resolving and comparing two aliases per write.
I M A G E C O M P R E S S I O N
Changes for D19:
Added codecFlagDontUseNewImageBuffer and codecFlagInterlaceUpdate flags.
Added calls to aid in optimally aligning windows on the screen.
pascal void AlignScreenRect(Rect *rp);
pascal void AlignWindow(WindowPtr wp, const Rect *alignmentRect, Boolean front);
pascal void DragAlignedWindow(WindowPtr wp, Point startPt, Rect *boundsRect, Rect *alignmentRect);
pascal long DragAlignedGrayRgn(RgnHandle theRgn, Point startPt, Rect *boundsRect,
Rect *slopRect, short axis, ProcPtr actionProc, Rect *alignmentRect)
Added SetCSequenceDataRateParams and SetCSequenceFrameNumber calls, and appropriate
params to codecs.
Added new calls for image description extensions
RemoveImageDescriptionExtension
CountImageDescriptionExtensionType
GetNextImageDescriptionExtensionType
If the image is being banded into a picture, only put the default PICT in once
The default PICT image is now text based instead of a scaled bitmap.
Don't require QuickTime to playback newly compressed raw pictures.
CompressPicture will create non-QuickTime pict if codectype is 0 or 'raw '
Fast Dither to black and white
Fix exit to shell patch to not bus error on purged dither tables.
Maintain port and gdevice across decompress and compress calls
Allow nil srcRect in decompressImage.
Zero qderr low mem before using it.
Fixed the way clipping mask bitmaps are created. (visRgn of screen was used for offscreen bitmap)
Fixed GWorld creation when padding the right edge (1-bit, non 16 multiple width images got resized)
SetImageDescriptionCTable now treats direct device compatiblity cluts as no clut.
Fix bug to allow CompressPictureFile to work when passed a compressed picture.
Fixed possible crash or memory leak when disposing dither table.
Added seeking to picture spooling code.
Seek past unused data when drawing compressed pictures instead of reading it in
Fix CompressStdBits to not call itself recursively.
Fixed support for codecs that do clipping.
Validate color table in GetImageDescriptionCTable
Don't let low similarity values get rounded to zero
Close codecs used by UpdatePreviousComp so they don't accumulate
Clear abort flag before all calls so that aborting certain calls does not abort all others
CompressSequenceBegin now fills in ImageDescription (was done in first CompressSequenceFrame)
DrawTrimmedPicture and DrawTrimmedPictureFile supresses dither if doDither variable is not set.
Changes for Alpha:
Patch QuickDraw to use 32-bit to 16-bit dithering whenever dither bit is set.
Killed keyframeproc stuff.
Changed interface to alignment calls to allow passing in a alignment proc.
Added GetCSequenceKeyFrameRate, GetCSequenceRateParams, GetCSequenceFrameNumber, NewImageGWorld
Allow seek forward in data proc when spooling pictures with non-standard GetPicProc by just reading
the data and tossing it.
Default progressProc used if -1 is passed in as progressProc parameter for all calls
Fix bug whe doing asynchronous compression with updatePreviousComp set
GWorld pixels do not remain locked
buffersize parameter passed to codecs is always valid ( even on sequences )
M A T H
Changes for D19:
Fixed degrees to radians conversion in FracSinCos
Made CompMulDiv not use UnsignedFixMulDiv when it would be a bad thing
(e.g. low long has high bit set and looks negative but isn't)
and return the correct value for positive infinity.
R P Z A C O D E C
Changes for D19:
Added 32-bit 2x decompress case
Fixed bug when banded decompress to 8-bit with dither.
Fixed bug in recompression degradation
S M C C O D E C
Changes for D19:
Added 2x resize decompress cases for 8, 8 remapped, 16, and 32-bit destinations.
Decompression optimizations when resizing to non-2x scale.
Handle change of depths and matrix changes in mid-sequence.
R L E C O D E C
Changes for D19:
Added native clipping in the decompressors for 32,24,16 bit sources to 32,16 bit dests.
Remove snapping from quality mapping, turn off 32->16 compress.
Added interlace decompression support
R A W C O D E C
Changes for D19:
Performance improvements and new optimized cases.
24-bit to 16-bit copy case.
8-bit to 1-bit fast dither.
32,24,16,8 to 1-bit transformed fast dither.
Only does 32 to 16 dither if accuracy is high
Fixed 1-bit dither when clipped across multiple screens
8 to 8,8 remapped,16,32 transform cases.
Fast dithering routines for 32,24,16 to 1-bit.
Fast dithering from 32 to 16 bit.
Fixed bad size calculation for GetMaxCompressionSize for 24-bit.
Fix cases of dithering without dither bit set
Changes for Alpha:
Add fast clipping support.
Add clipping cases for all 1-bit fast dither, 8-bit fast dither, and resize loops.
Set cmpCount to 4 for 32-bit pixels and to 3 for 24-bit pixels.
J P E G C O D E C
Changes for D19:
Add optional accuracy degradation.
Added error checking to prevent crashes when decoding bad data.
Improved decode performance.
Fixed bug in inverse DCT for non 22:11:11 cases
Fixed overflow bug which showed up compressing certain high contrast images
Fixed bug in decoding certain images when huffman code exceeds base table resolution
Fixed bug when reading images that where exactly 255 pixels high or wide ( matches marker code 0xff )
Fixed bug that was losing bits in the IDCT causing less sharp images
C V I D C O D E C
New for Alpha. It provides high quality, low data rate, video. The tradeoff is the much longer
compression time. See detailed documentation elsewhere in this release. Don't forget the
documentation with Movie Shop.
S T A N D A R D C O M P R E S S I O N
Changes for D19:
The Standard Compression Dialog component is now part of the QuickTime extension.
Added test image pan and zoom
Added help balloon support
Changes for Alpha:
Add movable modal support.
Deal with slow compressors like CompactVideo.
Switch to new slider look.
S T A N D A R D P R E V I E W
Changes for D19:
Add support for preview components that don't make a preview cache.
Added AIFF file previewer.
Don't change the current resource file.
Don't mess up the stack on return from CustomGetFilePreview.
If no preview, but a custom icon is present, use custom icon as preview.
Add support for preview components that get events.
Movie preview component supports playing a movie's preview, if one is defined.
Look for preview dialog items in custom calls, rather than using absolute ID numbers -->>
makes it possible to use preview with things like XTND that assume
they know the item numbers.
Changes for Alpha:
Fixes for automagic file conversion.
New Human Interface approved conversion dialogs.
Use the new ICM call to figure out the best screen to appear on.
T I M E B A S E S
Changes for D19:
Add GetTimeBaseEffectiveRate call. Returns the rate obtained by multiplying all rates
back up to the master clock.
Add new callback type "callBackAtExtremes" and related constants. Provides notification
when a TimeBase reaches start and/or stop times.
Changes for Alpha:
Stop reading values in low memory.
S Y S T E M P A T C H E S
Alias Manager -
Changes for D19:
Ignore relative path on ResolveAlias, rather than returning an error under System 6.
Add patch to ResolveAlias/MatchAlias to fix problems with resolving alias's to CD's.
System 6 alias manager no longer allows user interface ( and hence crashes ) if
Window Manager not initialized.
Changes for Alpha:
Change a bunch of file system calls to use Parameter Blocks to reduce code size.
File Manager System 6 -
Changes for D19:
Merge in the TruncateFile patch so we don't corrupt disks on system 6.
FS6Init which fixes an HFS bug in system 6 is now part of the QT init.
S E Q U E N C E G R A B B E R
Changes for D19:
Added SGUpdate call. See documentation for details.
Add SGSetDataProc routine to allow for external data access while recording.
Add sgDontMakeMovie flag so recording can just generate DataProc calls.
Add NewChannelFromComponent call.
Allow SGPause when not in preview or record, so you can start paused.
Work around file system to allow grabs larger that 32 Megs.
Don’t destroy the output file when grabbing in append mode and recording for under 2 seconds.
Calculate output buffer size by calling channels.
Make SGGrabPict work when there are already channels, and work better when there aren’t.
When doing live grabs to disk, do async buffered writes to disk.
When recording, do an AllocContig up front to avoid wasting more time.
Changes for Alpha:
Added a new call for writing data to disk to allow for faster disk writes.
Add SGGetPause and modify SGPause for more flexibility.
Added SGGetChannelTimeScale to augment the data proc capabilities.
Added a call to help in optimally aligned Sequence Grab windows on the screen. Based on
routines available in the Image Compression Manager.
Added a settings dialog which lets the sequence grabber take care of the user interface details of
configuring grab channels.
Can pass nil for file in SGSetDataOutput to just change the flags.
Video Channel
Changes for D19:
Add support for compressed video sources. Includes a couple new bottleneck routines.
Add SGSetFrameRate call to make life easier for those controlling frame rate.
Add SGGetChannelDeviceName
Add SGGetChannelSampleDescription. Useful for DataProcs.
Add SGSetChannelClip/SGGetChannelClip calls.
Fix condition in SetVideoBottleNecks that could cause some procs not to be called.
Use the right clut when displaying frames to the screen.
Make GetMaxFrames always return a value.
Make SGSetChannelMaxFrames work in preview if possible (i.e. no live playthru).
Try to detect and react to screen depth changes.
Only call vdig with matrix, if the matrix is necessary - otherwise use a rectangle.
Makes all old buggy vdigs work.
Fix an inverted matrix in SGSetVideoRect so video isn’t lost.
Make SGGetDataRate guess a rate if exact information not available.
Make SGSetChannelMaxFrames work in preview mode with devices that don’t do live playthru.
When doing playthru during record, draw fewer frames if no screen buffer.
Add support for vdigs that can clip.
Add support for vdigs that do unreadable screen bits.
When opening the vdig, try to find an input that is connected.
SGGetBufferInfo now works in preview mode, when possible.
Changes for Alpha:
Added a GetFrameRate call to balance the SetFrameRate call.
Add support for screen alignment routine.
Fix bug which was causing the last frame to get lost.
Fix bug in SGUpdate with certain digitizers.
Allowing changing the Video Digitizer while in preview mode.
Fix bug with choosing the compressor with certain compressed source vdigs.
Don't call VDSetUpBuffers for non-async vdigs.
Fix a couple bugs with SetChannelBounds and SetVideoRect.
Don't assume NewRgn will never fail. It does can with the appropriate test script.
Sound Channel
Changes for D19:
Add SGGetChannelDeviceName.
Add SGGetChannelSampleDescription. Useful for DataProcs.
Make recording of 16-bit samples and sample rates > 32kHz work.
Fix noise in output when recording and playthru during record using
devices that don't do hardware playthru.
Fix playthru of stereo sounds higher than 11kHz.
SGGetDataRate now guesses if exact information isn’t available.
Still work after a grab that calculated the sound rate, but calculated a rate
the device doesn’t support.
On open, attempt to locate a video channel, and use its default Sound Input Device.
Make sound recording on an LC not shut off sound output forever.
Don't lose sound volume after stopping and restarting.
Scale sound volume by Mac speaker volume on hardware playthru.
When calculated sound rate from recording, round instead of truncate.
Changes for Alpha:
Use new write data calls to put the source before the video in the output file.
Fix bugs with setting the device name and sample parameters.
Pay attention to the channel usage in a few more places.
M O V I E C O N T R O L L E R
Changes for D19:
Add mcActionMovieClick so that clicks on the movie can be detected more easily.
Add noSpatialEdit to controller flags.
Fix handling of suspend and resume events for real. Add mcActionSuspend and
mcActionResume to make it all work.
Make MCDrawBadge work as advertised.
Make stepping work for sound only movies.
Work even if the controller port is not a window.
Respect rate in play-every-frame mode.
Modify mcActionBadgeClick so that the badge click can be inhibited.
Fix mcActionShowBalloon so that it is always called before a balloon is put up,
to allow application deny in all cases.
Fix extra drawing problem when offscreen is disposed because it no longer intersects a screen.
Add color icons, they'll get better looking.
Support movies in preview mode. If a movie is in preview mode, the preview's duration is
treated as the entire duration of the movie on the controller.
Look at clicks "inGrow" part of a window.
Spatial calls should be more accurate now, particularly regarding badges and frames.
Only draw the movie at idle time.
Call EventAvail during mouse tracking to make MacApp happy.
If the controller is attached, MCSetPort now changes the movie's port.
Fix MCSetControllerBoundsRect to work when not framed. Previously a Get/Set
would change the movie size.
Added key modifiers to Paste.
Option-Paste adds tracks in parallel, rather than insert.
Shift-Paste does a replace of current selection with the paste.
Changes for Alpha:
Remove two unimplemented calls from the public interface.
Added MCSetActionFilterWithRefcon to make it easier to write filter procs.
Much cooler color icons.
Don't invalidate the movie when only the controller needs to be updated.
Don't skid to a stop in play selection mode (never stopped on the same frame twice).
Fix memory leak caused by orphaned palettes.
Fix help balloons for the badge.
Fix MCGetControllerRect when framed.
Better support for MovieImport stuff on MCPaste.
S T A N D A R D P R O G R E S S
Changes for D19:
A Standard Progress component has been added. When you pass -1 for a progress proc
within the Movie Toolbox or Image Compression Manager, we will call this for you.
Changes for Alpha:
Change the look of the dialog to be more Human Interface safe.
C O M P O N E N T M A N A G E R
Changes for Alpha:
Add the ComponentSetTarget component routine to the interface files.
Fix registerComponentResource memory moving bug, which caused components to not always
register.
Fix crash that occurs cloning a component into the app heap when the system heap is full.